package com.patrol.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patrol.pojo.TravelPath;

import java.util.List;
import java.util.Map;


public interface TravelPathService {

    /**
     * 根据主键查询一条记录
     * @param travel ： 主键
     * @return ：实体
     */
    TravelPath selectOneByTravel(Integer travel);

    /**
     * 插入一条记录
     * @param travelPath ： 实体
     * @return ： true 表示插入成功
     */
    boolean insertOne(TravelPath travelPath);

    /**
     * 更新一条记录
     * @param travelPath ： 实体
     * @return ： true表示成功
     */
    boolean updateOneById(TravelPath travelPath);

    /**
     * 根据ID删除
     * @param id ： 主键(travel)
     * @return : true表示成功
     */
    boolean deleteOneById(Integer id);

    /**
     * 分页查询所有路径
     * @param page : 当前页
     * @param limit : 每页的记录条数
     * @return ： 分页的TravelPath
     */
    Page<TravelPath> selectAll(long page, long limit);

    /**
     * 根据用户ID查出用户所有的点位
     * @param userId : 用户 ID
     * @return ：任务点ID为key，经纬度为值
     */
    Map<Integer, List<Double>> selectUserAllLocation(Integer userId);


    /**
     * 根据用户ID查出用户所有的点位
     * @param userId : 用户 ID
     * @param startDate : 开始日期
     * @param endDate : 截至日期
     * @return ：任务点ID为key，经纬度为值
     */
    Map<Integer, List<Double>> selectUserLocationByDate(Integer userId, String startDate, String endDate);


}
